aboutsummaryrefslogtreecommitdiffstats
path: root/pages/api/notes/[id].js
diff options
context:
space:
mode:
authorGravatar piotrruss <mail@pruss.it> 2021-09-04 10:56:37 +0200
committerGravatar piotrruss <mail@pruss.it> 2021-09-04 10:56:37 +0200
commita28b952eafc83ac6f6fc1a3d99805866bc41fde9 (patch)
tree5e8e99ef5ac2b11e8a8ab027a976caa9b1af480f /pages/api/notes/[id].js
parent467233f771d745aeb9f4e69b93d2fb24a1a95d3e (diff)
downloadmy_apps-a28b952eafc83ac6f6fc1a3d99805866bc41fde9.tar.gz
my_apps-a28b952eafc83ac6f6fc1a3d99805866bc41fde9.tar.bz2
my_apps-a28b952eafc83ac6f6fc1a3d99805866bc41fde9.zip
routes refactor
Diffstat (limited to 'pages/api/notes/[id].js')
-rw-r--r--pages/api/notes/[id].js70
1 files changed, 70 insertions, 0 deletions
diff --git a/pages/api/notes/[id].js b/pages/api/notes/[id].js
new file mode 100644
index 0000000..58e458f
--- /dev/null
+++ b/pages/api/notes/[id].js
@@ -0,0 +1,70 @@
+import dbConnect from 'configs/dbConnect'
+import withSession from 'hocs/withSession'
+import NoteList from 'models/NoteList'
+import Note from 'models/Note'
+
+export default withSession(async (req, res) => {
+ const {id: _id} = req.query
+ await dbConnect()
+
+ switch (req.method) {
+ case 'GET':
+ try {
+ const user = req.session.get('user')
+
+ if (!user || !user?.isVerified || !_id ) {
+ throw new Error('Something went wrong')
+ }
+
+ const note = await Note.getNote(_id)
+
+ if (!note) {
+ throw new Error('Something went wrong')
+ }
+
+ res.status(200).json(note)
+ } catch (error) {
+ console.log(error)
+ res.status(400).json({error: true})
+ }
+ break
+ case 'DELETE':
+ try {
+ const user = req.session.get('user')
+
+ if (!user || !user?.isVerified || !_id) {
+ throw new Error('Something went wrong')
+ }
+
+ const noteId = await NoteList.getNoteId(user.noteList, _id)
+ if ( !noteId) throw new Error('Something went wrong')
+
+ await Note.findByIdAndDelete(noteId)
+ const {notes} = await NoteList.removeNote(user.noteList, _id)
+
+ res.status(200).json(notes)
+ } catch (error) {
+ console.log(error)
+ res.status(400).json([])
+ }
+ break
+ case 'PUT':
+ try {
+ const user = req.session.get('user')
+ const {title, noteId, content} = req.body
+
+ if (!user || !user?.isVerified || !_id || !content) {
+ throw new Error('Something went wrong')
+ }
+
+ await Note.updateNote(noteId, content)
+ const {notes} = await NoteList.updateList(user.noteList, noteId, title)
+
+ res.status(200).json(notes)
+ } catch (error) {
+ console.log(error)
+ res.status(400).json([])
+ }
+ break
+ }
+})